using System.ComponentModel.DataAnnotations;
using SupplierCustomerManagement.Domain.Entities;

namespace SupplierCustomerManagement.Domain.ReportForms
{
    /// <summary>
    /// 存栏历史记录实体
    /// 用于记录羊只存栏状态的变更历史
    /// </summary>
    public class SheepInventoryHistory : BaseEntity
    {
        /// <summary>
        /// 羊只ID
        /// </summary>
        [Required]
        public int SheepId { get; set; }

        /// <summary>
        /// 变更日期
        /// </summary>
        [Required]
        public DateTime ChangeDate { get; set; }

        /// <summary>
        /// 变更类型（入库/出库/转移/死亡等）
        /// </summary>
        [Required]
        [StringLength(20)]
        public string ChangeType { get; set; }

        /// <summary>
        /// 原位置
        /// </summary>
        [StringLength(100)]
        public string? PreviousLocation { get; set; }

        /// <summary>
        /// 当前位置
        /// </summary>
        [StringLength(100)]
        public string? CurrentLocation { get; set; }

        /// <summary>
        /// 原状态
        /// </summary>
        [StringLength(20)]
        public string? PreviousStatus { get; set; }

        /// <summary>
        /// 当前状态
        /// </summary>
        [StringLength(20)]
        public string? CurrentStatus { get; set; }

        /// <summary>
        /// 变更原因
        /// </summary>
        [StringLength(200)]
        public string? Reason { get; set; }

        /// <summary>
        /// 操作员ID
        /// </summary>
        public int? OperatorId { get; set; }
    }
}
